Many computing systems allow multiple disk I/O requests to be sent to a controller with a cache, without the system needing to wait for prior requests to complete before sending additional requests. The system accesses the disk or the cache by issuing I/O requests.
The controller typically includes a command queue. As the system receives new commands, they are placed on the queue. Commands that can be completed from the cache will complete more quickly than commands that require the system to access the disks.
I/O commands can be divided into three general categories: read, write, and control. Relatively few commands tend to fall within the control category, and these commands tend not to have a significant impact on performance. Read and write commands can be divided into two categories. “Fast” commands that may be fulfilled from the cache, and “slow” commands that require activity on the underlying (and slower) I/O subsystem.
In many cases, the slower commands can interfere with the system's ability to receive and process the faster cache commands, because the queue is of a limited size.